package com.fiap.to;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.OneToOne;
import javax.persistence.PrePersist;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "AM_COLABORADOR")
public class ColaboradorTO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GenericGenerator(name = "seq_colaborador", strategy = "increment")
	@GeneratedValue(generator = "seq_colaborador")
	@Column(name = "ID_COLABORADOR")
	private int id_colaborador;
	@Column(length = 12, nullable = false)
	private int rg;
	@Column(length = 14, nullable = false)
	private int cpf;
	@Column(length = 11)
	private int cnh;
	@Column(length = 20, nullable = false)
	private String carteiraTrabalho;
	@Column(length = 200)
	private String obs;
	@OneToOne(cascade = CascadeType.PERSIST)
	private PessoaTO pessoa;
	@Lob
	@Column
	private Lob foto;


	@PrePersist
	private void executaAntesDePersistir() {
		System.out.println("Persistindo...");
	}

	public ColaboradorTO() {
		super();
		// TODO Auto-generated constructor stub
	}

	public ColaboradorTO(int id_colaborador, int rg, int cpf, int cnh,
			String carteiraTrabalho, String obs, PessoaTO pessoa, Lob foto) {
		super();
		this.id_colaborador = id_colaborador;
		this.rg = rg;
		this.cpf = cpf;
		this.cnh = cnh;
		this.carteiraTrabalho = carteiraTrabalho;
		this.obs = obs;
		this.pessoa = pessoa;
		this.foto = foto;
	}

	public int getId_colaborador() {
		return id_colaborador;
	}

	public void setId_colaborador(int id_colaborador) {
		this.id_colaborador = id_colaborador;
	}

	public int getRg() {
		return rg;
	}

	public void setRg(int rg) {
		this.rg = rg;
	}

	public int getCpf() {
		return cpf;
	}

	public void setCpf(int cpf) {
		this.cpf = cpf;
	}

	public int getCnh() {
		return cnh;
	}

	public void setCnh(int cnh) {
		this.cpf = cnh;
	}

	public String getCarteiraTrabalho() {
		return carteiraTrabalho;
	}

	public void setCarteiraTrabalho(String carteiraTrabalho) {
		this.carteiraTrabalho = carteiraTrabalho;
	}

	public String getObs() {
		return obs;
	}

	public void setObs(String obs) {
		this.obs = obs;
	}

	public PessoaTO getPessoa() {
		return pessoa;
	}

	public void setPessoa(PessoaTO pessoa) {
		this.pessoa = pessoa;
	}

	public Lob getFoto() {
		return foto;
	}

	public void setFoto(Lob foto) {
		this.foto = foto;
	}

}
